package br.upe.dsc.caeto.core.application;

import br.upe.dsc.caeto.core.hierarchy.Hierarchy;

public class Application {
    private String name;
    private String projectName;
	private String benchMark;
	private String parametros;
	private String arquivoEntrada;
	private String arquivoSaida;
	private Hierarchy hierarquia;
	private String tipoSimulacao;
	
	public Application(String name, String benchMark, String parametros,
			String arquivoEntrada, String arquivoSaida, Hierarchy hierarquia) {
		
		this.name = name;
		this.benchMark = benchMark;
		this.parametros = parametros;
		this.arquivoEntrada = arquivoEntrada;
		this.arquivoSaida = arquivoSaida;
		this.hierarquia = hierarquia;
	}
    
	public Application(String name, String projectName, String benchMark,
                       String parametros, String arquivoEntrada,
                       String arquivoSaida, Hierarchy hierarquia) {
	    
        this.name = name;
		this.projectName = projectName;
        this.benchMark = benchMark;
		this.parametros = parametros;
		this.arquivoEntrada = arquivoEntrada;
		this.arquivoSaida = arquivoSaida;
		this.hierarquia = hierarquia;
	}

    public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return this.name;
	}

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectName() {
        return this.projectName;
    }

	public void setBenchMark(String benchMark) {
		this.benchMark = benchMark;
	}
	
	public String getBenchMark() {
		return this.benchMark;
	}
	
	public void setParametros(String parametros) {
		this.parametros = parametros;
	}
	
	public String getParametros() {
		return this.parametros;
	}
	
	public void setArquivoEntrada(String arquivoEntrada) {
		this.arquivoEntrada = arquivoEntrada;
	}
	
	public String getArquivoEntrada() {
		return this.arquivoEntrada;
	}
	
	public void setArquivoSaida(String arquivoSaida) {
		this.arquivoSaida = arquivoSaida;
	}
	
	public String getArquivoSaida() {
		return this.arquivoSaida;
	}
	
	public void setHierarquia(Hierarchy hierarquia) {
		this.hierarquia = hierarquia;
	}
	
	public Hierarchy getHierarquia(){
		return this.hierarquia;
	}
	
	public void setTipoSimulacao(String tipoSimulacao){
		this.tipoSimulacao = tipoSimulacao;
	}
	
	public String getTipoSimulacao(){
		return this.tipoSimulacao;
	}
	
	public boolean equals(Object object) {
		return (object instanceof Application) ?
				(this.name.equals(((Application) object).getName())) : false;
	}
}
